package com.stargate.bd.dao;

import java.sql.Date;

import com.stargate.bd.bean.*;
import com.stargate.io.LectureClavier;

public class DAOCreator {

	public static Badge createBadge() {
		System.out.println("*** Création d'un badge ***");
		System.out.print("Activer le badge ? (o/n) ");
		boolean activer = LectureClavier.lireOuiNon();
		Etat etatBadge = (activer ? Etat.ENABLE : Etat.DISABLE);
		return new Badge(etatBadge);
	}

	public static Personne createPersonne() {
		System.out.println("*** Création d'une personne ***");
		int idP = LectureClavier.lireEntier("ID personne :");
		System.out.print("Nom : ");
		String nom = LectureClavier.lireChaine();
		System.out.print("Prénom : ");
		String prenom = LectureClavier.lireChaine();
		Date date = LectureClavier.lireDate("Date de naissance (jj/mm/aaaa) :");
		System.out.print("Lieu de naissance : ");
		String lieu = LectureClavier.lireChaine();
		System.out.print("Bureau : ");
		String bureau = LectureClavier.lireChaine();
		return new Personne(idP, nom, prenom, date, lieu, bureau);
	}

	public static Affectation createAffectation(Personne personne, Badge badge) {
		System.out.println("*** Affectation du badge n°" + badge.getNumBadge()
				+ " à " + personne.getPrenom() + " " + personne.getNom()
				+ " ***");
		Date dateDebAff = LectureClavier.lireDate("Date de début d'affectation (jj/mm/aaaa) :");
		System.out.print("Affecter un badge permanent ? (o/n) ");
		boolean permanent = LectureClavier.lireOuiNon();
		Date dateFinAff = null;
		if (!permanent) {
			dateFinAff = LectureClavier.lireDate("Date de fin d'affectation (jj/mm/aaaa) :");
		}
		return new Affectation(personne.getIdPersonne(), badge.getNumBadge(), dateDebAff, dateFinAff);
	}
	
	public static Affectation createAffectation(int idPersonne, int numBadge) {
		System.out.println("*** Affectation du badge n°" + numBadge +
				" à la personne n°" + idPersonne + " ***");
		Date dateDebAff = LectureClavier.lireDate("Date de début d'affectation (jj/mm/aaaa) :");
		System.out.print("Affecter un badge permanent ? (o/n) ");
		boolean permanent = LectureClavier.lireOuiNon();
		Date dateFinAff = null;
		if (!permanent) {
			dateFinAff = LectureClavier.lireDate("Date de fin d'affectation (jj/mm/aaaa) :");
		}
		return new Affectation(idPersonne, numBadge, dateDebAff, dateFinAff);
	}
}
